package com.zenith.zongheng.demo.dao;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zenith.zongheng.demo.domain.entity.LeaveInfo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zenith.zongheng.demo.domain.dto.LeaveInfoDTO;
import com.zenith.zongheng.demo.domain.vo.LeaveInfoVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * <p>
 * Mapper 接口
 * </p>
 *
 * @author tangzx
 * @since 2021-12-07
 */
@Mapper
public interface LeaveInfoMapper extends BaseMapper<LeaveInfo> {

    /**
     * 通过leaveInfoDTO的任意一个字段
     * 得到所有对应的leaveInfoVO的值
     *
     * @param page 分页对象
     * @param dto  条件参数对象
     * @return 分页对象
     */
    IPage<LeaveInfoVO> selectPage(IPage<LeaveInfoVO> page, @Param("dto") LeaveInfoDTO dto);

    /**
     * 查询该用户一年内的请假情况,没有返回0
     *
     * @param unitUserId dto
     * @return 次数
     * @author wuyue
     */
    Integer countLeaveByYear(@Param("unitUserId") Long unitUserId);


    /**
     * 查询待审批的用户列表
     *
     * @return 次数
     * @author hzp
     */
    IPage<LeaveInfoVO> getApproveList();
}
